草庐IT

C++11 auto 和 size_type

全部标签

C++引用、内联函数、auto关键字介绍以及C++中无法使用NULL的原因

文章目录一、引用1.1引用概念1.2引用特性1.3常引用1.4使用场景1.4.1做参数1.4.2做返回值1.5引用和指针的区别1.6小结一下二、内联函数2.1内联的概念2.2内联的特性2.3【面试题】三、auto关键字(C++11)3.1类型别名思考3.2auto简介四、auto的使用细则4.1基于范围的for循环(C++11)4.2范围for的使用条件五、指针空值nullptr(C++11)一、引用1.1引用概念C++是C语言的继承,它可进行过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。引用(reference)就是C+

C++11 `T&&` 参数丢失其 `&&` 正确术语?

以下C++11代码无法编译:structT{};voidf(T&&){}voidg(T&&t){f(t);}intmain(){g(T());}正确的做法是:voidg(T&&t){f(move(t));}这很难用正确的自然语言术语来解释。参数t似乎失去了它需要用std::move恢复的“&&”状态。g(T())中的T()是什么意思?g(T&&t)中的T&&是什么意思?g(T&&t)中的t是什么意思?f(t)和f(move(t))中的t是什么?move(t)的返回值是什么?你怎么称呼整体效果?标准的哪些部分涉及此问题? 最佳答案 关

c++ - g++ 是否满足 std::string C++11 要求

考虑以下示例:intmain(){stringx="hello";//copyconstructorhasbeencalledhere.stringy(x);//c_strreturnconstchar*,butthisusageisquitepopular.char*temp=(char*)y.c_str();temp[0]='p';cout>x;return0;}在visualstudio编译器和g++上运行它。当我这样做时,我得到了两个不同的结果。在g++中:x=pelloy=pello在VisualStudio2010中:x=helloy=pello差异的原因很可能是g++st

c++ - std::move 与 std::auto_ptr 相比?

我可以用C++11中的“移动”(右值引用)做什么我不能用std::auto_ptr做什么?(据我了解,它们是一个想法的不同实现。)老问题又来了:std::auto_ptr是这么糟糕的组件吗? 最佳答案 C++98/03没有真正“可移动”类的概念。auto_ptr是一个具有transfer-on-copy-semantics的类,即当您制作拷贝时,原始内容会发生变化(注意带有非常量参数的复制构造函数!)。这是不好的。这样的类不能在标准容器中使用。由于新添加的右值引用概念,C++11引入了真正可移动类的概念。新的unique_ptr完全

c++ - 错误 : Variable length array of Non-POD element type 'string'

在开始之前,我必须首先声明,我已经研究过针对此错误的可能解决方案。不幸的是,它们都与不使用数组有关,这是我项目的要求。另外,我目前正在学习CS入门类(class),所以我的经验几乎没有。数组的用途是从文件中收集名称。因此,为了初始化数组,我计算了名称的数量并将其用作大小。问题是标题中所述的错误,但我仍然使用一维数组时看不到解决方法。主要.cpp#include#include#include#include#include#include"HomeworkGradeAnalysis.h"usingnamespacestd;intmain(){ifstreaminfile;ofstrea

c++ - 使用 auto 声明变量和使用类型名称有什么区别?

例如,我有一些类DataPacket。有什么区别:autopacket=DataPacket();和DataPacketpacket;? 最佳答案 先回答关于auto的问题,生成的代码没有区别:autopacket=DataPacket();和DataPacketpacket=DataPacket();但这不是你写的。在最初的问题中,第一个创建一个value-initialized临时对象,然后从中复制初始化packet。这需要一个可访问的、非显式的复制或移动构造函数,需要类型可以是默认构造的,并确保初始化packet(假设复制/移

c++ - std::make_pair 与 c++ 11

您好,我有以下代码:boolPinManager::insertPin(conststd::string&p_pinNumber,conststd::string&p_mode){boost::shared_ptrpin(newGPIOPin(p_pinNumber,p_mode));if(pin){m_pinsInUse.insert(std::make_pair>(p_pinNumber,pin));returntrue;}returnfalse;}此代码始终编译,但当我添加-std=c++0x标志时,此代码无法编译并显示消息:[42%]BuildingCXXobjectgpioa

c++ - try catch finally construct - 它是在 C++11 中吗?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:DoesC++support'finally'blocks?(Andwhat'sthis'RAII'Ikeephearingabout?)C++11是否支持try/catch/finally构造?我问是因为我找不到任何关于它的信息。谢谢。

Swift 4:如何使用ios11视觉框架从面部地标点创建面部图

我正在使用iOS11视觉框架实时产生面部标志性点。我能够通过面部标志性点的UibezierPath来获取面部标记点,并覆盖相机层。但是,我想获得右下图的东西。目前,我有一些看起来像左图的东西,我尝试循环浏览这些点并添加中点,但是我不知道如何从这些点中生成所有这些三角形。我将如何从左侧点从右侧生成地图?我不确定我是否可以使用所有的要点,并不是说它会有所帮助,但是我也有整个脸部边界框的要点。最后,是否有任何框架可以让我识别我需要的所有要点,例如OpenCV或其他内容,请告诉我。谢谢!这是我一直在使用的代码https://github.com/droidsonroids/visionfacedete

Android11.0内置第三方Launcher并设置为默认,保留Launcher3并可切换

Android11.0内置第三方Launcher并设置为默认,保留Launcher3并可切换Android11.0内置第三方Launcher并设置为默认,保留Launcher3并可切换Android11.0内置第三方Launcher并设置为默认,保留Launcher3并可切换本文描述Android11中内置第三方应用为Launcher并保住自带的Launcher3,刷机后系统启动时选择内置第三方应用显示并设置为默认Launcher。添加自定义默认launcher属性,修改文件路径:/device/rockchip/rk356x/rk356x.prop;persist.sys.def_launc